local t = Def.ActorFrame {
	LoadFont("PaneDisplay text") ..{
		InitCommand=cmd(horizalign,right;shadowlength,0;diffuse,0,1,1,1;maxwidth,60;SetTextureFiltering,false;);
		OnCommand=cmd(zoomy,0;sleep,1.1;decelerate,0.4;zoom,1;playcommand,"Set");
		SetCommand=function(self)
			if not GAMESTATE:IsCourseMode() then
				local song = GAMESTATE:GetCurrentSong();
				if song then
					rank = SONGMAN:GetSongRank(song);
					self:visible(true);
					self:settext(rank);
				else
					self:visible(false);
				end;
			else
				self:visible(false);	
			end;
		end;
		CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
		CurrentCourseChangedMessageCommand=cmd(playcommand,"Set");
		CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set");
		CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set");
	};
};

return t;